<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
      table {
        width: 500px;
        margin: 100px auto;
        border-collapse: collapse;
        text-align: center;
      }

      td,
      th {
        border: 1px solid #333;
      }

      thead tr {
        height: 40px;
        background-color: #ccc;
      }
    </style>
  </head>

  <body>
    <table cellspacing="0">
      <thead>
        <tr>
          <th>姓名</th>
          <th>科目</th>
          <th>成绩</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody></tbody>
    </table>
    <script>
      // 1.先去准备好学生的数据
      var datas = [
        {
          name: "魏璎珞",
          subject: "JavaScript",
          score: 100
        },
        {
          name: "弘历",
          subject: "JavaScript",
          score: 98
        },
        {
          name: "傅恒",
          subject: "JavaScript",
          score: 99
        },
        {
          name: "明玉",
          subject: "JavaScript",
          score: 88
        },
        {
          name: "大猪蹄子",
          subject: "JavaScript",
          score: 0
        }
      ];
      var tbody = document.querySelector("tbody");
      // 1.需要根据数据得到 tr 遍历数组
      for (var i = 0; i < datas.length; i++) {
        // 2. 创建 tr标签
        var trNode = document.createElement("tr");
        // 3. 创建好的元素需要追加到tbody里面去
        tbody.appendChild(trNode);
        // 4.行里面的单元格由数组里面的元素来决定 遍历数组里面的元素 由于数组里面的元素它是对象 所以我们需要使用for...in来遍历  访问对象里面的属性 对象.属性名 或者 对象['属性名']
        for (var k in datas[i]) {
          // 需要创建td标签
          var td = document.createElement("td");
          // td是一个双标签 它的由是由 对象里面的属性来决定
          td.innerHTML = datas[i][k];
          //   console.log(datas[i][k]);
          // 然后将td追加到tr里面去
          trNode.appendChild(td);
        }
        // 每一个循环的里面需要手动的创建一个td
        var lastTd = document.createElement("td");
        // 往td里面写入一个 a标签
        lastTd.innerHTML = '<a href="javascript:;" onclick="del(this)">删除</a>';
        // 然后将它追加到tr里面去
        trNode.appendChild(lastTd);
      }

      // 需要将被删除的这一行给删除
      function del(obj) {
        obj.parentNode.parentNode.remove();
      }
    </script>
  </body>
</html>
